1. Field of the Invention
The present invention relates to an information system for compiling information relating to computer programs, in particular the information system according to the present invention compiles information from both kernel and passive mode systems.
2. Description of the Related Art Kernel debuggers have been used by kernel developers to print simple text messages during development stages of a kernel. These messages are useful to developers because information otherwise unattainable is made available to the developers and can be used to correct errors and make improvements in the kernel as it is being developed. However, any debugging code that is added to the kernel during development stages is typically removed when development of the kernel is completed. Thus, many messages and signals from the kernel of systems that are released to the public are typically difficult if not impossible to monitor after their release to the public. This is also true of many other kernel level applications as well as in many passive level applications.
Visibility for kernel mode systems has always been a problem even for simple hardware drivers and especially for large real time systems like software modems. In large systems, understanding the information produced by a debugger poses a significant problem because the information produced by the debugger is not organized in a manner that allows a human to readily perceive kernel coding problems upon viewing the information. Further, all the desired information from the kernel is not made readily available to the user. The traditional way of using kernel debuggers to identify and solve problems is at best suitable for small-scale systems. In addition, kernel debuggers cannot be used to monitor system configuration problems and cannot be used to track system problems at remote sites.
Passive mode systems, as opposed to kernel mode systems, also have debuggers available for system development. However, these debuggers suffer from many of the same drawbacks as kernel debuggers.
The present invention includes both a system and a method for building an online database for a computer system having a server module configured to receive information from client modules. The method comprises configuring at least one client module to communicate with the server module when the at least one client module is operating on the computer system. At least one communication channel is established between the at least one client module and the server module such that information may be passed from the at least one client module to the server module. This information is passed through the at least one communication channel from the at least one client module to the server module and compiled, with the server module, in a manner selected by a user of the computer system. The information is displayed in the manner selected by the user of the computer system to thereby assist in diagnostics of the computer system.
The information passed from the at least one client module sometimes includes passing information from at least one kernel level module to the server module. In addition, the information passed from the at least one client module could comprise passing information from at least one passive level module to the server module. In the system, any combination of information being passed from the kernel level or the passive level to the server module is contemplated. The information passed from the at least one kernel level module could include information regarding messages, events, and signals. Likewise, the information passed from the at least one passive level module could include information regarding messages, events, and signals. In one embodiment, the information passed from the at least one kernel level module comprises passing information from a kernel of a modem system.
The information received by the server module from the at least one client module may be displayed in a hierarchical structure such that a user can select a particular portion of the information to view in detail. Further, the display of the information can be used to assist a user in performing diagnostics such as modifying a configuration of a modem system to optimize communications between the computer system and another computer system.
In another embodiment according to the principles of the present invention, an information server for kernel and passive mode systems includes at least one server driver that acquires information directly from a kernel of a kernel mode computer program while the kernel mode computer program operates. In addition, a server application is present that is passed information from the at least one server driver in a manner that allows a user to view and organize the information with the server application. The server application is also configured to receive information directly from at least one passive mode program, also in a manner that the user can view and organize the information from the at least one passive mode program.
The information server may pass the information to the server application from the at least one server driver to enable the server application to build a messages and events database. Further, the information passed to the server application from the at least one passive mode program enables the server application to display signals generated by the at least one passive mode program.
In addition, the server application of the information server further comprises at least one communication channel that enables the server application to receive information from at least one server driver and an indicator that indicates to the at least one server driver that the server application is configured to receive information from the at least one server driver through the at least one communication channel. If no indication is received from the server application, the at least one server driver operates as though no server application exists on the system and the efficiency of the system is not affected by the at least one server driver.
To enable this operation, the at least one server driver may further comprise a module that enables the at least one server driver to operate transparently to the information server if at least one communication channel is not established between the at least one server driver and the server application.
Likewise, the server application of the information server further comprises at least one communication channel that enables the server application to receive information from the at least one passive mode program and an indicator that indicates to the at least one passive mode program that the server application is configured to receive information from the at least one passive mode program through the at least one communication channel.
Like the at least one server driver, if no indication is received from the server application that it is configured to receive information, the at least one passive mode program operates as though no server application exists on the system and the efficiency of the system is not affected by the at least one passive mode program.
To enable this operation, the at least one passive mode program may further comprise a module that enables the at least one passive mode program to operate as though no server application exists if at least one communication channel is not established between the server application and the at least one passive mode program. Thus, a computer system operating with the information server operates as though no information server exists on the computer system when the server application is not in operation on the computer system.